package supremeragcalc;

import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingConstants;
import supremeragcalc.character.Char;
import supremeragcalc.util.gui.GenericRagButton;
import supremeragcalc.util.gui.RagButtonFactory;
import supremeragcalc.util.gui.RagImagePanel;
import supremeragcalc.util.gui.RagSkillTreePanel;
import supremeragcalc.util.gui.SkinConstants;

public class RagCalcAppPanel extends JPanel implements SkinConstants {

	private RagImagePanel baseWin = null;
	private RagImagePanel statsWin = null;
	private RagImagePanel equipWin = null;
	private JPanel skillWin = null;
	private JLabel lbName = null;
	private JLabel lbClassName = null;
	private JLabel lbHP = null;
	private JLabel lbSP = null;
	private JLabel lbBaseLevel = null;
	private JLabel lbJobLevel = null;
	private JLabel lbStr = null;
	private JLabel lbAgi = null;
	private JLabel lbVit = null;
	private JLabel lbInt = null;
	private JLabel lbDex = null;
	private JLabel lbLuk = null;
	private GenericRagButton btPlusStr = null;
	private GenericRagButton btPlusAgi = null;
	private GenericRagButton btPlusVit = null;
	private GenericRagButton btPlusInt = null;
	private GenericRagButton btPlusDex = null;
	private GenericRagButton btPlusLuk = null;
	private JLabel lbStrStatPoint = null;
	private JLabel lbAgiStatPoint = null;
	private JLabel lbVitStatPoint = null;
	private JLabel lbIntStatPoint = null;
	private JLabel lbDexStatPoint = null;
	private JLabel lbLukStatPoint = null;
	private JLabel lbIncStr = null;
	private JLabel lbIncAgi = null;
	private JLabel lbIncVit = null;
	private JLabel lbIncInt = null;
	private JLabel lbIncDex = null;
	private JLabel lbIncLuk = null;
	private JLabel lbAtk = null;
	private JLabel lbMatk = null;
	private JLabel lbHit = null;
	private JLabel lbCrit = null;
	private JLabel lbRemainStatPoint = null;
	private JLabel lbAspd = null;
	private JLabel lbFlee = null;
	private JLabel lbMdef = null;
	private JLabel lbDef = null;
	private GenericRagButton btOpenSkillWin = null;

	Font font;

	Char character;

	public RagCalcAppPanel() {
		this.setSize(315, 459);
		
		FlowLayout layout = (FlowLayout) this.getLayout();
		layout.setVgap(0);

		font = new Font("Candara", Font.PLAIN, 12);

		character = new Char();

		initailize();
	}

	public void initailize() {
		this.add(getBaseWin());
		this.add(getStatsWin());
		this.add(getEquipWin());
		this.add(getSkillWin());
	}

	private RagImagePanel getBaseWin() {
		if (baseWin == null) {
			baseWin = new RagImagePanel(BASEWIN_IMAGE);
			baseWin.setLayout(null);

			baseWin.add(getLbBaseLevel());
			baseWin.add(getLbJobLevel());
			baseWin.add(getLbHp());
			baseWin.add(getLbSp());
			baseWin.add(getLbClassName());
			baseWin.add(getLbName());
			baseWin.add(getBtOpenSkillWin());
		}
		
		return baseWin;
	}

	public JLabel getLbBaseLevel() {
		if(lbBaseLevel == null) {
			lbBaseLevel = new JLabel();
			lbBaseLevel.setBounds(new Rectangle(10, 74, 96, 11));
			lbBaseLevel.setFont(font);
			lbBaseLevel.setText("Base Lv. : " + character.getBaselevel());
		}
		
		return lbBaseLevel;
	}

	public JLabel getLbJobLevel() {
		if(lbJobLevel == null) {
			lbJobLevel = new JLabel();
			lbJobLevel.setBounds(new Rectangle(10, 84, 96, 12));
			lbJobLevel.setFont(font);
			lbJobLevel.setText("Job Lv. : " + character.getJoblevel());
		}
		return lbJobLevel;
	}

	public JLabel getLbHp() {
		if(lbHP == null) {
			lbHP = new JLabel();
			lbHP.setBounds(new Rectangle(85, 30, 115, 14));
			lbHP.setFont(font);
			lbHP.setHorizontalAlignment(SwingConstants.CENTER);
			int HPmax = character.getHP();
			lbHP.setText("HP   " + HPmax + " / " + HPmax);
		}
		return lbHP;
	}

	public JLabel getLbSp() {
		if(lbSP == null) {
			lbSP = new JLabel();
			lbSP.setBounds(new Rectangle(85, 52, 115, 14));
			lbSP.setFont(font);
			lbSP.setHorizontalAlignment(SwingConstants.CENTER);
			int SPmax = character.getSP();
			lbSP.setText("SP   " + SPmax + " / " + SPmax);
		}
		return lbSP;
	}

	public JLabel getLbClassName() {
		if(lbClassName == null) {
			lbClassName = new JLabel();
			lbClassName.setBounds(new Rectangle(12, 37, 80, 16));
			lbClassName.setFont(font);
			lbClassName.setText(character.getClassName());
			lbClassName.setCursor(new Cursor(Cursor.HAND_CURSOR));

			lbClassName.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseEntered(java.awt.event.MouseEvent e) {
					lbClassName.setText("<html><u>" + lbClassName.getText());
				}
				public void mouseExited(java.awt.event.MouseEvent e) {
					String split[] = lbClassName.getText().split(">");
					lbClassName.setText(split[2]);
				}
			});
		}
		return lbClassName;
	}

	public JLabel getLbName() {
		if(lbName == null) {
			lbName = new JLabel();
			lbName.setText("Supreme");
			lbName.setFont(font);
			lbName.setBounds(new Rectangle(12, 20, 80, 16));
		}
		return lbName;
	}

	public GenericRagButton getBtOpenSkillWin() {
		if(btOpenSkillWin == null) {
			btOpenSkillWin = RagButtonFactory.createOpenSkillWinButton();
			btOpenSkillWin.setLocation(205, 20);
			btOpenSkillWin.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					getSkillWin().setVisible(true);
					getSkillWin().requestFocus();
				}
			});
		}

		return btOpenSkillWin;
	}

	public JPanel getStatsWin() {
		if(statsWin == null) {
			statsWin = new RagImagePanel(STATSWIN_IMAGE);
			statsWin.setLayout(null);

			statsWin.add(getLbStr());
			statsWin.add(getLbAgi());
			statsWin.add(getLbVit());
			statsWin.add(getLbInt());
			statsWin.add(getLbDex());
			statsWin.add(getLbLuk());

			statsWin.add(getBtPlusStr());
			statsWin.add(getBtPlusAgi());
			statsWin.add(getBtPlusVit());
			statsWin.add(getBtPlusInt());
			statsWin.add(getBtPlusDex());
			statsWin.add(getBtPlusLuk());

			statsWin.add(getLbStrStatPoint());
			statsWin.add(getLbAgiStatPoint());
			statsWin.add(getLbVitStatPoint());
			statsWin.add(getLbIntStatPoint());
			statsWin.add(getLbDexStatPoint());
			statsWin.add(getLbLukStatPoint());

			statsWin.add(getLbAtk());
			statsWin.add(getLbMatk());
			statsWin.add(getLbHit());
			statsWin.add(getLbCrit());
			statsWin.add(getLbDef());
			statsWin.add(getLbMdef());
			statsWin.add(getLbFlee());
			statsWin.add(getLbAspd());
			statsWin.add(getlbRemainStatPoint());
			
		}
		
		return statsWin;
	}

	public JLabel getLbStr() {
		if(lbStr == null) {
			lbStr = new JLabel();
			lbStr.setFont(font);
			lbStr.setLocation(53, 6);
			lbStr.setSize(35, 13);
			//lbStr.setBorder(BorderFactory.createLineBorder(Color.red));
			lbStr.setText(character.getBaseStr() + "+" + character.getStr2());
		}

		return lbStr;
	}

	public JLabel getLbAgi() {
		if(lbAgi == null) {
			lbAgi = new JLabel();
			lbAgi.setFont(font);
			lbAgi.setLocation(53, 22);
			lbAgi.setSize(35, 13);
			//lbAgi.setBorder(BorderFactory.createLineBorder(Color.red));
			lbAgi.setText(character.getBaseAgi() + "+" + character.getAgi2());
		}

		return lbAgi;
	}

	public JLabel getLbVit() {
		if(lbVit == null) {
			lbVit = new JLabel();
			lbVit.setFont(font);
			lbVit.setLocation(53, 38);
			lbVit.setSize(35, 13);
			//lbVit.setBorder(BorderFactory.createLineBorder(Color.red));
			lbVit.setText(character.getBaseVit() + "+" + character.getVit2());
		}

		return lbVit;
	}

	public JLabel getLbInt() {
		if(lbInt == null) {
			lbInt = new JLabel();
			lbInt.setFont(font);
			lbInt.setLocation(53, 54);
			lbInt.setSize(35, 13);
			//lbInt.setBorder(BorderFactory.createLineBorder(Color.red));
			lbInt.setText(character.getBaseInt() + "+" + character.getInt2());
		}

		return lbInt;
	}

	public JLabel getLbDex() {
		if(lbDex == null) {
			lbDex = new JLabel();
			lbDex.setFont(font);
			lbDex.setLocation(53, 70);
			lbDex.setSize(35, 13);
			//lbDex.setBorder(BorderFactory.createLineBorder(Color.red));
			lbDex.setText(character.getBaseDex() + "+" + character.getDex2());
		}

		return lbDex;
	}

	public JLabel getLbLuk() {
		if(lbLuk == null) {
			lbLuk = new JLabel();
			lbLuk.setFont(font);
			lbLuk.setLocation(53, 86);
			lbLuk.setSize(35, 13);
			//lbLuk.setBorder(BorderFactory.createLineBorder(Color.red));
			lbLuk.setText(character.getBaseLuk() + "+" + character.getLuk2());
		}

		return lbLuk;
	}

	public GenericRagButton getBtPlusStr() {
		if(btPlusStr == null) {
			btPlusStr = RagButtonFactory.createRightArrowButton();
			btPlusStr.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1) { // Clique esquerdo
						character.plusStr();
						refreshInfo();
					}
				}
			});
			//btPlusStr.setBorder(BorderFactory.createLineBorder(Color.red));
			btPlusStr.setLocation(getLbStr().getX() + getLbStr().getWidth(), getLbStr().getY());
		}

		return btPlusStr;
	}

	public GenericRagButton getBtPlusAgi() {
		if(btPlusAgi == null) {
			btPlusAgi = RagButtonFactory.createRightArrowButton();
			btPlusAgi.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1) { // Clique esquerdo
						character.plusAgi();
						refreshInfo();
					}
				}
			});
			//btPlusAgi.setBorder(BorderFactory.createLineBorder(Color.red));
			btPlusAgi.setLocation(getLbAgi().getX() + getLbAgi().getWidth(), getLbAgi().getY());
		}

		return btPlusAgi;
	}

	public GenericRagButton getBtPlusVit() {
		if(btPlusVit == null) {
			btPlusVit = RagButtonFactory.createRightArrowButton();
			btPlusVit.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1) { // Clique esquerdo
						character.plusVit();
						refreshInfo();
					}
				}
			});
			//btPlusVit.setBorder(BorderFactory.createLineBorder(Color.red));
			btPlusVit.setLocation(getLbVit().getX() + getLbVit().getWidth(), getLbVit().getY());
		}

		return btPlusVit;
	}

	public GenericRagButton getBtPlusInt() {
		if(btPlusInt == null) {
			btPlusInt = RagButtonFactory.createRightArrowButton();
			btPlusInt.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1) { // Clique esquerdo
						character.plusInt();
						refreshInfo();
					}
				}
			});
			//btPlusInt.setBorder(BorderFactory.createLineBorder(Color.red));
			btPlusInt.setLocation(getLbInt().getX() + getLbInt().getWidth(), getLbInt().getY());
		}

		return btPlusInt;
	}

	public GenericRagButton getBtPlusDex() {
		if(btPlusDex == null) {
			btPlusDex = RagButtonFactory.createRightArrowButton();
			btPlusDex.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1) { // Clique esquerdo
						character.plusDex();
						refreshInfo();
					}
				}
			});
			//btPlusDex.setBorder(BorderFactory.createLineBorder(Color.red));
			btPlusDex.setLocation(getLbDex().getX() + getLbDex().getWidth(), getLbDex().getY());
		}

		return btPlusDex;
	}

	public GenericRagButton getBtPlusLuk() {
		if(btPlusLuk == null) {
			btPlusLuk = RagButtonFactory.createRightArrowButton();
			btPlusLuk.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1) { // Clique esquerdo
						character.plusLuk();
						refreshInfo();
					}
				}
			});
			//btPlusLuk.setBorder(BorderFactory.createLineBorder(Color.red));
			btPlusLuk.setLocation(getLbLuk().getX() + getLbLuk().getWidth(), getLbLuk().getY());
		}

		return btPlusLuk;
	}


	public JLabel getLbStrStatPoint() {
		if(lbStrStatPoint == null) {
			lbStrStatPoint = new JLabel();
			lbStrStatPoint.setFont(font);
			lbStrStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbStrStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			int x = getBtPlusStr().getX() + getBtPlusStr().getWidth();
			lbStrStatPoint.setLocation(x, getLbStr().getY());
			lbStrStatPoint.setSize(16, 13);
			lbStrStatPoint.setText("" + character.getStrStatPoint());
		}

		return lbStrStatPoint;
	}

	public JLabel getLbAgiStatPoint() {
		if(lbAgiStatPoint == null) {
			lbAgiStatPoint = new JLabel();
			lbAgiStatPoint.setFont(font);
			lbAgiStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbAgiStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			int x = getBtPlusAgi().getX() + getBtPlusAgi().getWidth();
			lbAgiStatPoint.setLocation(x, getLbAgi().getY());
			lbAgiStatPoint.setSize(16, 13);
			lbAgiStatPoint.setText("" + character.getAgiStatPoint());
		}

		return lbAgiStatPoint;
	}

	public JLabel getLbVitStatPoint() {
		if(lbVitStatPoint == null) {
			lbVitStatPoint = new JLabel();
			lbVitStatPoint.setFont(font);
			lbVitStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbVitStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			int x = getBtPlusVit().getX() + getBtPlusVit().getWidth();
			lbVitStatPoint.setLocation(x, getLbVit().getY());
			lbVitStatPoint.setSize(16, 13);
			lbVitStatPoint.setText("" + character.getVitStatPoint());
		}

		return lbVitStatPoint;
	}

	public JLabel getLbIntStatPoint() {
		if(lbIntStatPoint == null) {
			lbIntStatPoint = new JLabel();
			lbIntStatPoint.setFont(font);
			lbIntStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbIntStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			int x = getBtPlusInt().getX() + getBtPlusInt().getWidth();
			lbIntStatPoint.setLocation(x, getLbInt().getY());
			lbIntStatPoint.setSize(16, 13);
			lbIntStatPoint.setText("" + character.getIntStatPoint());
		}

		return lbIntStatPoint;
	}

	public JLabel getLbDexStatPoint() {
		if(lbDexStatPoint == null) {
			lbDexStatPoint = new JLabel();
			lbDexStatPoint.setFont(font);
			lbDexStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbDexStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			int x = getBtPlusDex().getX() + getBtPlusDex().getWidth();
			lbDexStatPoint.setLocation(x, getLbDex().getY());
			lbDexStatPoint.setSize(16, 13);
			lbDexStatPoint.setText("" + character.getDexStatPoint());
		}

		return lbDexStatPoint;
	}

	public JLabel getLbLukStatPoint() {
		if(lbLukStatPoint == null) {
			lbLukStatPoint = new JLabel();
			lbLukStatPoint.setFont(font);
			lbLukStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbLukStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			int x = getBtPlusLuk().getX() + getBtPlusLuk().getWidth();
			lbLukStatPoint.setLocation(x, getLbLuk().getY());
			lbLukStatPoint.setSize(16, 13);
			lbLukStatPoint.setText("" + character.getLukStatPoint());
		}

		return lbLukStatPoint;
	}

	public JLabel getLbAtk() {
		if(lbAtk == null) {
			lbAtk = new JLabel();
			lbAtk.setFont(font);
			lbAtk.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbAtk.setBorder(BorderFactory.createLineBorder(Color.red));
			lbAtk.setLocation(140, 5);
			lbAtk.setSize(50, 13);
			lbAtk.setText(character.getAtk1() + "+" + character.getAtk2());
		}

		return lbAtk;
	}

	public JLabel getLbMatk() {
		if(lbMatk == null) {
			lbMatk = new JLabel();
			lbMatk.setFont(font);
			lbMatk.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbMatk.setBorder(BorderFactory.createLineBorder(Color.red));
			lbMatk.setLocation(140, 22);
			lbMatk.setSize(50, 13);
			lbMatk.setText(character.getMatk1() + "+" + character.getMatk2());
		}

		return lbMatk;
	}

	public JLabel getLbHit() {
		if(lbHit == null) {
			lbHit = new JLabel();
			lbHit.setFont(font);
			lbHit.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbHit.setBorder(BorderFactory.createLineBorder(Color.red));
			lbHit.setLocation(140, 38);
			lbHit.setSize(50, 13);
			lbHit.setText("" + character.getHit());
		}

		return lbHit;
	}

	public JLabel getLbCrit() {
		if(lbCrit == null) {
			lbCrit = new JLabel();
			lbCrit.setFont(font);
			lbCrit.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbCrit.setBorder(BorderFactory.createLineBorder(Color.red));
			lbCrit.setLocation(140, 54);
			lbCrit.setSize(50, 13);
			lbCrit.setText("" + character.getCrit());
		}

		return lbCrit;
	}

	public JLabel getLbDef() {
		if(lbDef == null) {
			lbDef = new JLabel();
			lbDef.setFont(font);
			lbDef.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbDef.setBorder(BorderFactory.createLineBorder(Color.red));
			lbDef.setLocation(222, 5);
			lbDef.setSize(50, 13);
			lbDef.setText(character.getDef1() + "+" + character.getDef2());
		}

		return lbDef;
	}

	public JLabel getLbMdef() {
		if(lbMdef == null) {
			lbMdef = new JLabel();
			lbMdef.setFont(font);
			lbMdef.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbMdef.setBorder(BorderFactory.createLineBorder(Color.red));
			lbMdef.setLocation(222, 22);
			lbMdef.setSize(50, 13);
			lbMdef.setText(character.getMdef1() + "+" + character.getMdef2());
		}

		return lbMdef;
	}

	public JLabel getLbFlee() {
		if(lbFlee == null) {
			lbFlee = new JLabel();
			lbFlee.setFont(font);
			lbFlee.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbFlee.setBorder(BorderFactory.createLineBorder(Color.red));
			lbFlee.setLocation(222, 38);
			lbFlee.setSize(50, 13);
			lbFlee.setText(character.getFlee1() + "+" + character.getFlee2());
		}

		return lbFlee;
	}

	public JLabel getLbAspd() {
		if(lbAspd == null) {
			lbAspd = new JLabel();
			lbAspd.setFont(font);
			lbAspd.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbAspd.setBorder(BorderFactory.createLineBorder(Color.red));
			lbAspd.setLocation(222, 54);
			lbAspd.setSize(50, 13);
			lbAspd.setText("" + character.getAspd());
		}

		return lbAspd;
	}

	public JLabel getlbRemainStatPoint() {
		if(lbRemainStatPoint == null) {
			lbRemainStatPoint = new JLabel();
			lbRemainStatPoint.setFont(font);
			lbRemainStatPoint.setHorizontalAlignment(SwingConstants.RIGHT);
			//lbRemainStatPoint.setBorder(BorderFactory.createLineBorder(Color.red));
			lbRemainStatPoint.setLocation(140, 70);
			lbRemainStatPoint.setSize(132, 13);
			lbRemainStatPoint.setText("" + character.getRemainStatPoints());
		}

		return lbRemainStatPoint;
	}

	public JPanel getEquipWin() {
		if(equipWin == null) {
			equipWin = new RagImagePanel(EQUIPWIN_IMAGE);
		}

		return equipWin;
	}

	public JPanel getSkillWin() {
		if(skillWin == null) {
			skillWin = new JPanel();
			//skillWin = new RagImagePanel(SKILLWIN_IMAGE);
			JTabbedPane tabbedPan = new JTabbedPane(JTabbedPane.LEFT);

			RagSkillTreePanel skillPan1 = new RagSkillTreePanel();
			skillPan1.setLayout(null);
			skillPan1.setLocation(0, 0);

			RagSkillTreePanel skillPan2 = new RagSkillTreePanel();
			skillPan2.setLayout(null);
			skillPan2.setLocation(0, 0);

			RagSkillTreePanel skillPan3 = new RagSkillTreePanel();
			skillPan3.setLayout(null);
			skillPan3.setLocation(0, 0);

			tabbedPan.setSize(skillPan1.getSize());
			tabbedPan.addTab(null, skillPan1);
			JLabel label1 = new JLabel(
				"<HTML>N<br>o<br>v.<br><br>&<br><br>1<br>s<br>t</HTML>");
			label1.setFont(font);
			tabbedPan.setTabComponentAt(0, label1);

			tabbedPan.addTab(null, skillPan2);
			JLabel label2 = new JLabel(
				"<HTML>2<br>n<br>d<br><br>J<br>O<br>B<br></HTML>");
			label2.setFont(font);
			tabbedPan.setTabComponentAt(1, label2);

			tabbedPan.addTab(null, skillPan3);
			JLabel label3 = new JLabel(
				"<HTML>3<br>r<br>d<br><br>J<br>O<br>B<br></HTML>");
			label3.setFont(font);
			tabbedPan.setTabComponentAt(2, label3);

			skillWin.add(tabbedPan);
		}

		return skillWin;
	}

	public void refreshInfo() {
		getLbClassName().setText(character.getClassName());
		getLbHp().setText("HP   " + character.getHP() + " / " + character.getHP());
		getLbSp().setText("SP   " + character.getSP() + " / " + character.getSP());
		getLbBaseLevel().setText("Base Lv. : " + character.getBaselevel());
		getLbJobLevel().setText("Job Lv. : " + character.getJoblevel());
		getLbStr().setText(character.getBaseStr() + "+" + character.getStr2());
		getLbAgi().setText(character.getBaseAgi() + "+" + character.getAgi2());
		getLbVit().setText(character.getBaseVit() + "+" + character.getVit2());
		getLbInt().setText(character.getBaseInt() + "+" + character.getInt2());
		getLbDex().setText(character.getBaseDex() + "+" + character.getDex2());
		getLbLuk().setText(character.getBaseLuk() + "+" + character.getLuk2());
		getLbStrStatPoint().setText("" + character.getStrStatPoint());
		getLbAgiStatPoint().setText("" + character.getAgiStatPoint());
		getLbVitStatPoint().setText("" + character.getVitStatPoint());
		getLbIntStatPoint().setText("" + character.getIntStatPoint());
		getLbDexStatPoint().setText("" + character.getDexStatPoint());
		getLbLukStatPoint().setText("" + character.getLukStatPoint());
		getLbAtk().setText(character.getAtk1() + "+" + character.getAtk2());
		getLbMatk().setText(character.getMatk1() + "+" + character.getMatk2());
		getLbHit().setText("" + character.getHit());
		getLbCrit().setText("" + character.getCrit());
		getLbDef().setText(character.getDef1() + "+" + character.getDef2());
		getLbMdef().setText(character.getMdef1() + "+" + character.getMdef2());
		getLbFlee().setText(character.getFlee1() + "+" + character.getFlee2());
		getLbAspd().setText("" + character.getAspd());
		getlbRemainStatPoint().setText("" + character.getRemainStatPoints());
	}
}
